package org.smallframework.spring.path;

import java.io.IOException;
import java.net.URL;
import java.util.Set;

/**
 * 本地实现(该实现主要拷贝和修改早期spring-core 5.0中的代码)
 */
public class LocalClassPathScanningServiceImpl implements ClassPathScanningService {
    @Override
    public Set<URL> getClassResourcesURL(URL rootClasspath, String... scanPackageArr) {
        return LocalClassPathScanning.getClassResources(resource -> {
            try {
                return resource.getURL();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }, rootClasspath, scanPackageArr);
    }

    @Override
    public Set<URL> getResourcesURL(URL rootClasspath, String... locationPatterns) {
        return LocalClassPathScanning.getResources(resource -> {
            try {
                return resource.getURL();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }, rootClasspath, locationPatterns);
    }
}
